public class Eleven {

    /**
     * 把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。
     * 给你一个可能存在重复元素值的数组numbers，它原来是一个升序排列的数组，并按上述情形进行了一次旋转。
     * 请返回旋转数组的最小元素。例如，数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转，该数组的最小值为1。
     * 链接：https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof
     * @param numbers
     * @return
     */
    public int minArray(int[] numbers) {
        int low = 0;
        int high = numbers.length-1;
        while (low<high){
            int mid = low+ (high-low)/2;
            if (numbers[mid]<numbers[high]){
                high = mid;
            }else if (numbers[mid]>numbers[high]){
                low = mid+1;
            }else {
                high--;
            }

        }
        return numbers[low];

    }
}
